In a computer network, a network manager or operator often requires the ability to add or modify new or existing network elements such as switches, routers, hubs, servers, disks, and other devices. In addition, the network operator may require the ability to replace, add or upgrade new or existing software and firmware images that execute on or in conjunction with the network devices in the computer network. Often such modifications to network resources require that the network operator or another person develop additional drivers, modules, adapters, configuration files, and other hardware and software components to enable the new element to be deployed and managed correctly on the network. In a storage area network (SAN), conventional deployment of new elements such as storage area network devices or software applications additionally requires employment of linear, or manual software development techniques to properly develop or create software modules that correspond to and that can manage the new elements. As an example, suppose a network administrator purchases a new host computer system that includes a new operating system for deployment within a storage area network as a server. The network administrator will require the ability to manage this new host device in a remote capacity via use of a network management software application. To do so, the conventional network management software application requires creation, by the network manager or by a developer of the network management software application, custom versions of source, object, and executable code deliverables to support management of the new host device.
In a typical conventional storage area network, one or more storage arrays having very large amounts of data storage capacity are connected through connectivity devices, such as switches, to host computer systems that operate as servers of data to client computer systems that request the data from the storage arrays. The storage area network is thus a network that interconnects host, connectivity and storage elements in a storage environment and ensures fault-free and timely access to the data for client users via the host servers. In the storage area network, a conventional storage area network management application is employed to monitor and control (i.e., to manage) the host, connectivity and storage elements in the network. Management of the storage area network by the network management application allows optimal usage and throughput in the storage area network by identifying areas of contention, reporting malfunctions, providing access control, and allocating ports and data flow paths between the host and storage devices in the storage area network.
The conventional network management application employs software components executing on, within or in conjunction with the various elements in the storage environment to effect management of these elements within the storage area network. Typically, a repository such as a database operates in conjunction with the network management application in order to map the elements (e.g, devices and software processes) that comprise the storage area network environment into data structures that the network management application can use to manage the network elements. The repository typically includes respective element definitions for each manageable entity in the storage area network. Each element definition in the repository includes or defines information such as types and attributes (characteristics) and associated attribute values of the element, relationships between that element and other elements, as well as topology, diagnostic, and historical data concerning that storage area network element as it operates within the storage area network.
The network management application can access the repository to obtain, for example, the current state of an element in the storage area network, such as the current performance of a host server computer system, by querying its respective element definition. In addition, the network management application can access an element definition in the repository in order to initiate communication with the device corresponding to that element definition to manage that device. In this manner, the network management application manages the entities in the storage area network to monitor and control operation of the storage area network environment. Other software components such as agent components, server components, and repository components may operate on or in conjunction with certain elements in the storage area network and these other applications may be responsive management requests from the network management application.